www.gusucode.com > PHP展示型企业网站模板米拓整站源码 1.0PHP源码程序 > PHP展示型企业网站模板米拓整站源码 1.0/MetInfozs_v1.0/MetInfozs_v1.0/app/system/include/class/curl.class.php
<?php # MetInfo Enterprise Content Management System # Copyright (C) MetInfo Co.,Ltd (http://www.metinfo.cn). All rights reserved. defined('IN_MET') or exit('No permission'); /** * 远程连接类 * @param string $host 主机名 * @param string $file 远程连接文件地址 */ class curl{ public $host; public $file; public $curlerror; public function __construct(){ global $_M; $this->set('host', $_M['config']['met_host']); } /** * 为字段赋值 * @param string $name 字段名称 * @param mixed $value 要赋给字段的值 * @return boolean 属性名不正确或值没有返回false */ public function set($name, $value){ if($value === NULL){ return false; } switch($name){ case 'host': $this->host = trim(str_replace('http://', '', $value), '/'); break; case 'file': $this->file = trim($value, '/'); break; default: return false; break; } } /** * 远程连接发送post * @param array $host 发送的POST信息 * @param string $timeout 超时时间,默认30秒 * @return string 返回请求信息 */ public function curl_post($post, $timeout = 30){ global $_M; if(get_extension_funcs('curl') && function_exists('curl_init') && function_exists('curl_setopt') && function_exists('curl_exec') && function_exists('curl_close')){ $curlHandle = curl_init(); curl_setopt($curlHandle, CURLOPT_URL, 'http://'.$this->host.'/'.$this->file); curl_setopt($curlHandle, CURLOPT_HTTP_VERSION, CURL_HTTP_VERSION_1_0); curl_setopt($curlHandle, CURLOPT_REFERER, $_M['config']['met_weburl']); curl_setopt($curlHandle, CURLOPT_RETURNTRANSFER, 1); curl_setopt($curlHandle, CURLOPT_CONNECTTIMEOUT, $timeout); curl_setopt($curlHandle, CURLOPT_TIMEOUT, $timeout); curl_setopt($curlHandle, CURLOPT_POST, 1); curl_setopt($curlHandle, CURLOPT_POSTFIELDS, $post); $result = curl_exec($curlHandle); curl_close($curlHandle); }else{ if(function_exists('fsockopen') || function_exists('pfsockopen')){ $post_data = $post; $post = ''; @ini_set("default_socket_timeout", $timeout); while(list($k, $v) = each($post_data)){ $post .= rawurlencode($k)."=".rawurlencode($v)."&"; } $post = substr($post , 0 , -1); $len = strlen($post); if(function_exists(fsockopen)){ $fp = @fsockopen($this->host, 80, $errno, $errstr, $timeout); } else{ $fp = @pfsockopen($this->host, 80, $errno, $errstr, $timeout); } if (!$fp) { $result=''; } else { $result = ''; $out = "POST /{$this->file} HTTP/1.0\r\n"; $out .= "Host: {$this->host}\r\n"; $out .= "Referer: {$_M['config']['met_weburl']}\r\n"; $out .= "Content-type: application/x-www-form-urlencoded\r\n"; $out .= "Connection: Close\r\n"; $out .= "Content-Length: {$len}\r\n"; $out .="\r\n"; $out .= $post."\r\n"; fwrite($fp, $out); $inheader = 1; while(!feof($fp)){ $line = fgets($fp, 1024); if ($inheader == 0) { $result .= $line; } if ($inheader && ($line == "\n" || $line == "\r\n")) { $inheader = 0; } } while(!feof($fp)){ $result .= fgets($fp, 1024); } fclose($fp); str_replace($out, '', $result); } } else{ $result = ''; } } $result = trim($result); if(substr($result, 0, 7) == 'metinfo'){ return substr($result, 7); } else{ $this->curlerror = $result; return 'nohost'; } } } # This program is an open source system, commercial use, please consciously to purchase commercial license. # Copyright (C) MetInfo Co., Ltd. (http://www.metinfo.cn). All rights reserved. ?>